#pragma once

#include <Runtime/Core/Core.h>
#include <vector>
#include <memory>

#include <Runtime/Graphics/Shader/Shader.h>
#include <Runtime/Graphics/Sampler/Sampler.h>

#include "InputLayout/InputLayoutDesc.h"
#include "Rasterizer/RasterizerDesc.h"
#include "DepthStencil/DepthStencilDesc.h"
#include "Blend/BlendStateDesc.h"


struct PipelineDesc {
	std::vector<std::shared_ptr<Shader>> Shaders;
	InputLayoutDesc InputLayout;
	RasterizerDesc Rasterizer;
	DepthStencilDesc DepthStencil;
	BlendStateDesc Blend;
	std::shared_ptr<Sampler> Sampler;
};